//
//  SEGActivityManager.h
//  ExcellentHome
//
//  Created by 揭婧雯 on 2017/8/1.
//  Copyright © 2017年 陈区. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "SEGActivityDetailModel.h"
#import "SEGActivityDetailCommentModel.h"
#import "SEGActivityDetailCommentDetailModel.h"
#import "SEGActivityDetailCommentAnswModel.h"
#import "SEGActivityMyUploadModel.h"
#import "SEGActivityListModel.h"
#import "SEGActivityLotteryDetailModel.h"
#import "SEGActivitySignModel.h"
#import "SEGWinRecordModel.h"
#import "SEGWinRecordDetailModel.h"
#import "SEGActivityLotteryResultModel.h"
#import "SEGActivityInvitaionModel.h"
#import "SEGBanalcesModel.h"
#import "SEGSignModel.h"

#if __has_include(<Commom/SEGHTTPBusinessManager.h>)
#import <Commom/SEGHTTPBusinessManager.h>
#else
#import "SEGHTTPBusinessManager.h"
#endif

@interface SEGActivityManager : NSObject

/**
 *  请求钱包-模型数据源
 */
@property (nonatomic, strong) NSArray<SEGBanalcesModel *> *seg_segbanalcesmodel;
/** 签到成功模型 */
@property (nonatomic, strong) SEGSignModel *userSignModel;

/**
 * 查询活动列表
 * @author Wendy
 * @param isMine 是否查询我参与的活动
 * @param isRecommend 是否推荐状态
 * @param finished 回调结果
 */
- (void)requestQueryActivitysWithIsMine:(BOOL)isMine
                            isRecommend:(BOOL)isRecommend
                                 pageNo:(NSInteger)pageNo
                               finished:(SEGNetworkReponse)finished;
/**
 活动列表数据
 */
@property (nonatomic, strong)NSArray<SEGActivityListModel *> *activityList;

/**
 * 查询活动详情
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestQueryActivityWithActId:(NSString *)actId finished:(SEGNetworkReponse)finished;
/**
 活动详情
 */
@property (nonatomic, strong)SEGActivityDetailModel *detailModel;


/**
 * 查询活动评论列表
 * @author Wendy
 * @param objId  活动ID
 * @param pageNo  页码
 */
- (void)requestActivityCommentsListByObjId:(NSString*)objId
                                    pageNo:(NSInteger)pageNo
                                  Finished:(SEGNetworkReponse)finished;
/**
 活动评论数组
 */
@property (nonatomic, strong)NSArray<SEGActivityDetailCommentModel *> *commentsArray;


/**
 * 活动浏览详情/分享活动/给活动点赞
 * @author Wendy
 * @param actId 是否查询我参与的活动1:是2:否
 * @param actionType 动作类型1:浏览,2:点赞,3:分享
 * @param finished 回调结果
 */
- (void)requestBrowseSharePraiseWithActId:(NSString *)actId actionType:(NSString *)actionType finished:(SEGNetworkReponse)finished;
/**
 点赞数
 */
@property (nonatomic, copy) NSString *likeCount;


/**
 * 活动进行评论
 * @author Wendy
 * @param objId 活动ID
 * @param quizContent 评论内容
 * @param quizPic 图片
 * @param show 0:不显示 1：显示
 * @param finished 回调结果
 */
- (void)requestCommentActivityWithObjId:(NSString *)objId
                           quizContent:(NSString *)quizContent
                               quizPic:(NSString *)quizPic
                                  show:(NSString *)show
                              finished:(SEGNetworkReponse)finished;


/**
 * 查询活动评论详情
 * @author Wendy
 * @param quizId  评论ID
 */
- (void)requestActivityCommentDetailByQuizId:(NSString*)quizId
                                    Finished:(SEGNetworkReponse)finished;
/**
 评论详情
 */
@property (nonatomic, strong)SEGActivityDetailCommentDetailModel *commentDetailModel;


/**
 * 查询活动评论的回复列表
 * @author Wendy
 * @param quizId  评论ID
 * @param pageNo  页码
 */
- (void)requestQuizAnswListByQuizId:(NSString*)quizId pageNo:(NSInteger)pageNo Finished:(SEGNetworkReponse)finished;
/**
 评论的回复列表
 */
@property (nonatomic, strong)NSArray<SEGActivityDetailCommentAnswModel *>* commentAnswerList;


/**
 * 回复评论
 * @author Wendy
 * @param quizId  评论ID
 * @param pageNo  页码
 */
- (void)requestSaveQuizAnswerByquizId:(NSString*)quizId
                          answContent:(NSString*)answContent
                           byReviewId:(NSString*)byReviewId
                         byReviewNick:(NSString*)byReviewNick
                       byReviewUserId:(NSString*)byReviewUserId
                      objPicUrlForMsg:(NSString*)objPicUrlForMsg
                       objTitleForMsg:(NSString*)objTitleForMsg
                             objeType:(NSString*)objeType
                          parentObjId:(NSString*)parentObjId
                           paramsType:(NSInteger)paramsType
                        parentObjType:(NSInteger)parentObjType
                             Finished:(SEGNetworkReponse)finished;

/**
 * 查询我的评论
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestMyCommentsWithActId:(NSString *)actId
                            pageNo:(NSUInteger)pageNo
                          finished:(SEGNetworkReponse)finished;
/**
 我的评论列表
 */
@property (nonatomic, strong)NSArray<SEGActivityMyUploadModel *>* myCommentsList;

/**
 * 检查某个活动是否上传过作品
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestCheckHasUploadedWithActId:(NSString *)actId
                                finished:(SEGNetworkReponse)finished;
/**
 是否上传过作品
 */
@property (nonatomic, assign) BOOL hasUploaded;

/**
 * 对评论点赞
 * @author Wendy
 * @param objId    被点赞或浏览主题对象
 * @param objType  被点赞或浏览主题对象类型 1 画报2问题 3评论 4问题答案
 * @param objPicUrlForMsg  消息图片 主要是 2手 闲置 帮帮
 * @param objTitleForMsg  消息标题,如果是对PGC或者话题等系统发起的 objTitleForMsg为对应的标题，帮帮则为帮帮的标题（即问题的内容）否则objTitleForMsg为 评论内容
 * @param byReviewUserId  被点赞对象的用户ID，即记录创建者的用户Id
 * @param communityName  小区名称 来自 XX市 XX小区
 * @param parentObjId    父级Id ，例如对问题答案进行回复的话 parentObjId为问题ID
 * @param parentObjType
 * @param operationType 邻里圈类型 邻里圈相关点赞传 其他地方不传
 * @param finished 回调结果
 */
- (void)requestPraiseAttentByObjId:(NSString*)objId
                           ObjType:(NSString*)objType
                   objPicUrlForMsg:(NSString*)objPicUrlForMsg
                    objTitleForMsg:(NSString*)objTitleForMsg
                    byReviewUserId:(NSString*)byReviewUserId
                       parentObjId:(NSString*)parentObjId
                     parentObjType:(NSString*)parentObjType
                     operationType:(NSString *)operationType
                          Finished:(SEGNetworkReponse)finished;

/**
 * 取消点赞
 * @author Wendy
 * @param finished 回调结果
 */
- (void)requestCancelPraiseByobjId:(NSString*)objId
                           objType:(NSString*)objType
                          Finished:(SEGNetworkReponse)finished;

#pragma mark - 线下活动
/**
 * 查询线下活动剩余名额
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestQueryOffLinePerCountByActId:(NSString *)actId
                                    actObj:(NSString *)actObj
                                  finished:(SEGNetworkReponse)finished;
/**
 报名审核状态
 */
@property (nonatomic, assign) NSUInteger applyAuditStatus;

/// 线下活动剩余人数
@property (nonatomic, strong) NSString *offlineLiftCount;

/**
 * 线下活动报名
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestOffLineApplyByActId:(NSString *)actId
                            actObj:(NSString *)actObj
                          userName:(NSString *)userName
                           userSex:(NSString *)userSex
                           userTel:(NSString *)userTel
                        applyCount:(NSString *)applyCount
                            remark:(NSString *)remark
                          finished:(SEGNetworkReponse)finished;

/**
 * 查询我的线下活动邀请函信息
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestQueryInvitationByActId:(NSString *)actId
                             finished:(SEGNetworkReponse)finished;
/**
 邀请函信息
 */
@property (nonatomic, strong)SEGActivityInvitaionModel *invitationModel;
#pragma mark - 抽奖类
/**
 * 查询抽奖活动功能主体
 * @author Wendy
 * @param lotteryId 抽奖实例ID
 * @param isLotteryAct 是否是抽奖活动1:是2：否
 * @param finished 回调结果
 */
- (void)requestLotteryByLotteryId:(NSString *)lotteryId
                     isLotteryAct:(NSString *)isLotteryAct
                         finished:(SEGNetworkReponse)finished;
/**
 抽奖活动详情信息Model
 */
@property (nonatomic, strong) SEGActivityLotteryDetailModel *lotteryDetailModel;

/**
 * 用户抽奖
 * @author Wendy
 * @param actId 活动ID
 * @param triggerEventId 触发事件ID若为抽奖活动本身触发则为0
 * @param lotteryId 抽奖实例ID
 * @param finished 回调结果
 */
- (void)requestUserLotteryByActId:(NSString *)actId
                   triggerEventId:(NSString *)triggerEventId
                        lotteryId:(NSString *)lotteryId
                         finished:(SEGNetworkReponse)finished;

/**
 抽奖结果
 */
@property (nonatomic, strong)SEGActivityLotteryResultModel *lotteryResultModel;

#pragma mark - 签到类
/**
 * 查询签到活动主体信息
 * @author Wendy
 * @param signId 签到活动实例ID
 * @param finished 回调结果
 */
- (void)requestQuerySignBySignId:(NSString *)signId
                        finished:(SEGNetworkReponse)finished;
/**
 签到活动主题信息
 */
@property (nonatomic, strong)SEGActivitySignModel *signModel;

/**
 * 用户签到
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestSignByActId:(NSString *)actId
                  finished:(SEGNetworkReponse)finished;

#pragma mark - 中奖记录
/**
 * 查询我的中奖记录
 * @author Wendy
 * @param finished 回调结果
 */
- (void)requestQueryWinnerRecordBypageNo:(NSInteger)pageNo
                                finished:(SEGNetworkReponse)finished;
/**
 中奖记录数组
 */
@property (nonatomic, strong)NSArray<SEGWinRecordModel *> *winRecordsArray;

/**
 * 查询中奖记录详情
 * @author Wendy
 * @param finished 回调结果
 */
- (void)requestQueryWinnerRecordByWinnerId:(NSString *)winnerId
                                  finished:(SEGNetworkReponse)finished;
/**
 中奖记录详情
 */
@property (nonatomic, strong)SEGWinRecordDetailModel *recordDetailModel;

/**
 * 提交充值手机号
 * @author Wendy
 * @param finished 回调结果
 */
- (void)requestSubmitRechargeTelByWinnerId:(NSString *)winnerId
                               rechargeTel:(NSString *)rechargeTel
                                  finished:(SEGNetworkReponse)finished;

/**
 * 用户进行业务操作后,异步调用本接口，若有抽奖则发送消息队列消息，将抽奖实例发送给队列,同时,针对征集类，调查类，触发类，需要添加活动参与记录
 * @author Wendy
 * @param eventName 事件名 事件名包含：
 topic:参与话题
 reply-daily:回复日报
 purchanceProduct:购买商品
 joinwj:提交问卷
 postForHelp:帮帮发帖
 marktForHelp:集市发帖
 openDoor:手机开门
 payManagementFee:物业缴费
 repair:维修保障
 join:参加活动
 msg:留言
 like:点赞
 share:分享
 sign3:签到3天
 sign5:签到5天
 sign7:签到7天
 * @param eventValue 事件值
 当事件名为topic,reply-daily,purchanceProduct,joinwj 时，对应的事件值为话题ID,日报ID,商品ID,问卷ID
 当事件名为postForHelp,marktForHelp,openDoor,payManagementFee,repair时,事件值为0
 当事件名为其他取值时,事件值为对应的活动ID
 * @param finished 回调结果
 */
- (void)requestSubmitEventWithEventName:(NSString *)eventName eventValue:(NSString *)eventValue finished:(SEGNetworkReponse)finished;


/**
 * 检查活动是否未审核
 * @author Wendy
 * @param actId 活动ID
 * @param finished 回调结果
 */
- (void)requestCheckActivityUnauditWithActId:(NSString *)actId finished:(SEGNetworkReponse)finished;

/**
 * 查询首页是否显示签到按钮
 * @author Wendy
 * @param finished 回调结果
 */
- (void)requestIsSignShow:(SEGNetworkReponse)finished;

/**
 *  请求钱包-新的添加模型的请求
 */
- (void)requestMyCardV2WithDict:(NSDictionary*)params Finished:(SEGNetworkReponse)finished;

@end
